FIG. 1 illustrates an exemplary storage system 100 including initiators 102 and 104, SAS expanders 106, 108, 110 and 112, and devices 114, 116, 118, 120, 122 and 124. Note that FIG. 1 is merely illustrative, and that in SAS, SAS expanders can be connected in an arbitrary fashion, and a tree topology can be formed. If FIG. 1 represents a conventional SAS-1.1 network, then SAS expander 106 is a so-called “fanout” SAS expander, and SAS expanders 108, 110 and 112 may be so-called “edge” SAS expanders. In SAS-1.1, both fanout SAS expanders and edge SAS expanders can be connected to another expander by a “wide” port having multiple connections. In the example of FIG. 1, wide port 128 on fanout expander 106 is connected to wide port 130 on edge expander 108. Fanout expander 106 includes port module 126 which decides which of the multiple connections in the wide port is to be used for communicating data.
Fanout SAS expanders and edge SAS expanders generally represent two different designs, and serve different purposes. Fanout SAS expanders can be attached to multiple other SAS expanders, and are typically used higher up in the tree topology. On the other hand, edge SAS expanders are typically used further down the tree topology, are typically connected directly to end devices such as disk drives, and can be attached only to one other SAS expander.
Edge SAS expanders use subtractive routing, which means that small table is used to determine how to route a request. Edge SAS expanders are designed to be lower cost than fanout SAS expanders, and a small table is generally less expensive to maintain than a large table. In edge SAS expander 108, for example, if an OPEN frame (a request) for initiator 104 is received, small table 132 will indicate that initiator 104 is attached to egress port 134 having a label of X, and thus a connection can be formed with the initiator. However, if an OPEN frame for initiator 102 is received from devices 118 or 120 or edge SAS expander 110, small table 132 will not have an egress port for that initiator, and thus the request will be passed up to fanout SAS expander 106 through port 130. In fact, any OPEN frame which does not match any entries in small table 132 will be passed to port 130, hence the designation of subtractive routing. Note that OPEN frames are a SAS construct, and contain source and destination addresses, among other things.
Fanout SAS expanders are generally more expensive and have more functionality than edge SAS expanders. Fanout edge expanders need a large table of all devices in the system (e.g. a table with a separate listing for up to 128^2 devices). This large table, which may be an expensive content-addressable memory (CAM) or lookup table, is needed because of the decision made by the original architects of SAS to use world-wide names (WWNs) as the address of a device. Because the SAS network has no control over the assignment of these addresses, there is no way to control the assignment of addresses to create a sensible addressing scheme with shortcuts to limit the size of lookup tables, and therefore the use of large, complicated lookup tables or CAMs is required. As a result of the SAS addressing scheme, the 64-bit address of each device that the SAS expander is aware of must be placed in the lookup table or memory in order to identify the port on which the device resides. If an OPEN frame is received by a fanout SAS expander, the destination address contained within the frame is extracted and applied to the table, and the table returns a value, identifier or label indicating the port through which the data should be sent.
SAS-1.1 may soon be replaced by SAS-2. In SAS-2, there will be no separate fanout SAS expander and edge SAS expander designs. All expanders will have fanout SAS expander capabilities. However, because only fanout SAS expanders will be utilized, and because there can be many more devices present within a SAS-2 network, the size of the lookup tables or CAMs will be greatly increased.
Therefore, there is a need for a more efficient way to establish a connection when an OPEN frame is received, rather than relying on a large table in a fanout SAS expander.